const qs = require("querystring");

console.log(qs);

const str = "username=admin&password=123142&age=18";

// 将字符解析成对象
// const obj = qs.parse(str);
// console.log(obj);

// 自定义将字符解析成对象
function parse(str){
    const obj = {};
    str.split("&").forEach(val=>{
        obj[val.split("=")[0]] = val.split("=")[1];
    })
    return obj;
}
console.log(parse(str));


const o = {
    a:1,b:2,c:3
}
// 将对象解析成字符
// const s = qs.stringify(o);
// console.log(s);

// 自定义将对象解析成字符
function stringify(o){
    let s = "";
    for(let i in o){
        s += `${i}=${o[i]}&`;
    }
    return s.slice(0,-1);
}
console.log(stringify(o));


// =======================

// 将正文或特殊字符转义
// 一般需要计算机处理的文本都尽量先转义，转义是为了让计算机能看懂
console.log(qs.escape("上海"));

// 将转义之后的编码，再转回字符
// 一般在显示之前，将转义后的额编码再转回字符，转回字符是为了呈现给用户
console.log(qs.unescape("%E4%B8%8A%E6%B5%B7"));



